<!DOCTYPE html>
<html>
<head>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.10.2/jquery.min.js">
    </script>
    <script>
        $(document).ready(function () {

            function guid() {
                return Number(Math.random().toString().substr(3, 3) + Date.now()).toString(36);
            }

            function guid2() {
                //随机数*时间戳，再转化为16进制
                //Number.toString(16)    表示将其转换为16进制
                // Number | 0 表示取整数部分

                var stamp = new Date().getTime();
                return (((1 + Math.random()) * stamp) | 0).toString(16);
            }

            function guid3() {
                // 0x   表示16进制数据的开头
                //可以直接return (((1+Math.random())*0x10000)|0).toString(16)；
                return (((1 + Math.random()) * 0x10000) | 0).toString(16);
            }

            // 性能：guid3 > guid2 > guid
            // 重复数：guid > guid3 > guid2，guid2暂时没有测试出有重复的情况


            $("p").on("click", function () {

                var start = Date.now();
                var dd = {};
                var ds = 0;
                for (var i = 0; i <= 10000; i++) {
                    var id = guid3();
                    if (dd[id]) {
                        ds++;
                    }
                    dd[id] = 1;
                }
                var end = Date.now();
                alert('耗时：' + (end - start) + 'ms，重复数：' + ds);
            });
        });
    </script>
</head>
<body>

<p>点击这个段落。</p>

</body>
</html>